package com.zhu.pre.service;

import com.sanploy.common.domain.User;
import com.sanploy.common.domain.vo.TokenVo;
import com.sanploy.common.vo.BaseException;

import java.io.IOException;

/**
 * Created by zhu yingzhi on 2017/9/21.
 * @author yingzhi zhu
 * 手机用户接口
 */
public interface MUserService {
    /**
     * 添加用户
     * @param user 用户实体
     * @return 是否成功
     */
    int insertUser(User user);

    /**
     * 通过id查找用户
     * @param id 用户id
     * @return 用户实体
     */
    User findUserById(Long id);

    /**
     * 通过openid 查找用户
     * @param openId 用户openid
     * @return 用户实体
     */
    User findUserByOpenId(String openId);

    /**
     * 用户注销
     * @param token 请求认证
     * @return 是否成功
     */
    int logout(String token);

    /**
     * 用户注册
     * @param token 请求认证
     * @param user 用户实体
     * @return 是否成功
     * @throws BaseException 自定义异常
     */
    int register(String token, User user) throws BaseException;

    /**
     * 用户登录
     * @param code 请求附带code
     * @param token 请求认证
     * @return TokenVo 请求返回值
     * @throws IOException
     * @throws BaseException
     */
    TokenVo login(String code, String token) throws IOException, BaseException;
}
